一、基础操作
1. 添加和查看主机配置
mc alias set myminio http://127.0.0.1:9000 minioadmin minioadmin
为 MinIO 服务设置别名
myminio,并提供访问密钥。
查看所有主机:
mc alias list
查看指定主机:
mc alias list myminio
删除主机:
mc alias remove myminio
📁 二、存储桶(Bucket)管理
创建 Bucket:
mc mb myminio/mybucket
列出 Bucket:
mc ls myminio
删除 Bucket:
mc rb myminio/mybucket
如果 bucket 非空,可加
--force参数。
🧩 三、用户基础管理
🔹 创建用户
mc admin user add myminio <username> <password> [policy=<policy_name>]
示例:
mc admin user add myminio testuser Test@123 policy=readwrite
🔹 列出所有用户
mc admin user list myminio
🔹 查看用户信息
mc admin user info myminio testuser
🔹 禁用用户
mc admin user disable myminio testuser
🔹 启用用户
mc admin user enable myminio testuser
🔹 删除用户
mc admin user remove myminio testuser
🔹 AccessKey管理
1️⃣ 创建访问密钥
mc admin accesskey create <ALIAS> <USERNAME> [--expiry 7d] [--name <alias>] [--description "for app01"]
示例:
mc admin accesskey create myminio test01 --expiry 30d --description "backup job"
输出示例:
AccessKey: 7PD6L46BBQX7CWO1EUZV
SecretKey: q0WnXy7Kf6zN3R8wP9sE1hV5tA4rL2jB
Name: backup job
User: test01
Expiration: 30d
Status: enabled
2️⃣ 列出用户的所有 AccessKey
mc admin accesskey ls myminio test01
输出类似:
AccessKey Expiration Status
7PD6L46BBQX7CWO1EUZV 2025-12-01 enabled
YTR4CIHAU9CZWCC09RU5 none disabled
3️⃣ 查看 AccessKey 详细信息
mc admin accesskey info myminio YTR4CIHAU9CZWCC09RU5
输出包括:
AccessKey: YTR4CIHAU9CZWCC09RU5
User: test01
Policy: readwrite
Expiration: none
Description: CI/CD credentials
Status: enabled
4️⃣ 启用 / 禁用 AccessKey
禁用:
mc admin accesskey disable myminio 7PD6L46BBQX7CWO1EUZV
启用:
mc admin accesskey enable myminio 7PD6L46BBQX7CWO1EUZV
👉 适用于暂时停用某一对凭证(比如离职员工、项目暂停)。
5️⃣ 删除 AccessKey
mc admin accesskey remove myminio 7PD6L46BBQX7CWO1EUZV
删除后该 AccessKey 无法再访问 MinIO,建议定期清理。
6️⃣ 修改 AccessKey 属性(编辑)
mc admin accesskey edit <ALIAS> <ACCESSKEY> \
[--description "new description"] \
[--expiry-duration 30d] \
[--expiry 2025-12-31T00:00:00Z] \
[--name "friendly-name"] \
[--policy /path/to/policy.json] \
[--secret-key "newsecret"]
示例
mc admin accesskey edit myminio 7PD6L46BBQX7CWO1EUZV \
--description "updated for new backup job" \
--expiry-duration 60d
👉 适用于延长凭证过期时间、替换 SecretKey、或修改描述。
参数说明
| 参数 | 说明 |
|---|---|
--expiry-duration |
从现在起的有效期(如 30d, 12h) |
--expiry |
设置具体过期时间点 |
--secret-key |
替换 AccessKey 的 SecretKey(重新生成密钥) |
--policy |
指定新的策略文件路径(覆盖原策略) |
--description |
设置或修改备注信息 |
--name |
友好显示名,方便识别不同密钥来源 |
例子:
1️⃣ 创建长期 AccessKey(给后端服务用)
mc admin accesskey create myminio test01 --description "appserver credentials"
2️⃣ 创建临时 AccessKey(例如一周有效)
mc admin accesskey create myminio test01 --expiry 7d --description "temp debug key"
| 操作 | 命令 |
|---|---|
| 创建 AccessKey | mc admin accesskey create myminio <user> [--expiry 30d] |
| 列出 AccessKey | mc admin accesskey ls myminio <user> |
| 查看详情 | mc admin accesskey info myminio <accesskey> |
| 禁用 / 启用 | mc admin accesskey disable/enable myminio <accesskey> |
| 修改属性 | mc admin accesskey edit myminio <accesskey> [options] |
| 删除 | mc admin accesskey remove myminio <accesskey> |
🧰 四、常用内置策略(MinIO 自带)
| 策略名 | 权限说明 |
|---|---|
| readonly | 仅可读取对象 |
| writeonly | 仅可上传对象(无法读取) |
| readwrite | 可读写对象 |
| consoleAdmin | 管理员权限,可访问 MinIO 控制台 |
应用示例:
mc admin user add myminio user1 Pass123 policy=readonly
mc admin user add myminio user2 Pass123 policy=readwrite
mc admin user add myminio adminuser Pass123 policy=consoleAdmin
🧾 五、自定义策略
🔹 1. 创建策略文件(例:readonly-bucket.json)
{
"Version": "2012-10-17",
"Statement": [
{
"Action": ["s3:GetObject"],
"Effect": "Allow",
"Resource": ["arn:aws:s3:::mybucket/*"]
}
]
}
🔹 2. 导入策略
mc admin policy create myminio readonly-bucket readonly-bucket.json
🔹 3. 绑定策略到用户
mc admin policy attach <ALIAS> <POLICY_NAME> --user <USERNAME>
🔹 4. 绑定策略到组
mc admin policy attach <ALIAS> <POLICY_NAME> --group <GROUPNAME>
🔹 5. 列出所有策略
mc admin policy list myminio
🔹 6. 查看策略内容
mc admin policy info myminio readonly-bucket
🧮 六、策略管理命令汇总
| 操作 | 命令示例 |
|---|---|
| 创建策略 | mc admin policy create myminio <name> <file.json> |
| 删除策略 | mc admin policy remove myminio <name> |
| 列出策略 | mc admin policy list myminio |
| 查看策略 | mc admin policy info myminio <name> |
| 绑定策略到用户 | mc admin policy set myminio <policy> user=<username> |
🧱 七、实用组合命令
1️⃣ 创建用户并立即绑定自定义策略
mc admin user add myminio uploader Uploader@123
mc admin policy set myminio upload-policy user=uploader
2️⃣ 一键查看用户与策略绑定关系
mc admin user info myminio | grep policyName
📦 八、对象(文件)操作
上传文件:
mc cp ./file.txt myminio/mybucket
上传目录:
mc cp --recursive ./data/ myminio/mybucket/
下载文件:
mc cp myminio/mybucket/file.txt ./file.txt
下载目录:
mc cp --recursive myminio/mybucket/path ./
拷贝文件(跨桶复制对象):
mc cp myminio/bucket1/file myminio/bucket2/
重命名或移动文件:
mc mv myminio/mybucket/file.txt myminio/mybucket/b.txt
删除对象:
mc rm myminio/mybucket/file.txt
递归删除:
mc rm --recursive --force myminio/mybucket/path/
对象信息与元数据操作:
| 操作 | 命令示例 | 说明 |
|---|---|---|
| 查看文件信息 | mc stat myminio/mybucket/file.txt |
显示大小、修改时间、ETag、版本等 |
| 列出对象 | mc ls myminio/mybucket/path/ |
列出指定路径下的文件 |
| 查看目录树 | mc tree myminio/mybucket --depth 2 |
以层级结构展示对象 |
| 查看桶或目录用量 | mc du myminio/mybucket |
显示总空间占用 |
| 查看对象元数据 | mc head myminio/mybucket/file.txt |
查看自定义 Metadata |
| 修改对象元数据 | mc cp --attr "x-amz-meta-key=value" myminio/mybucket/file.txt |
添加或覆盖对象元数据 |
🔁 九、同步与镜像
单向同步(本地 → MinIO 同步):
mc mirror ./data myminio/mybucket
反向同步(MinIO → 本地 同步):
mc mirror myminio/mybucket ./data
双向持续同步(实时监控变化):
mc mirror --watch ./data myminio/mybucket
同步排除某类文件(忽略临时文件):
mc mirror --exclude "*.tmp" ./data myminio/mybucket
压缩同步:
mc mirror --zip ./data myminio/backup
🔒 十一、访问控制与策略
查看策略:
mc anonymous get myminio/mybucket
设置公开访问:
mc anonymous set public myminio/mybucket
设为私有:
mc anonymous set private myminio/mybucket
🧾 十二、信息与监控
查看服务器信息:
mc admin info myminio
查看用户列表:
mc admin user list myminio
查看桶使用统计:
mc du myminio/mybucket
实时监控文件变化:
mc watch myminio/mybucket
查看活动会话:
mc admin trace myminio
查看当前身份:
mc whoami myminio
测速上传/下载:
mc support perf net myminio
🧰 十三、其他实用命令
复制桶结构(无数据):
mc cp --attr x-amz-meta-key=value --recursive myminio/srcbucket myminio/destbucket
对象分享与访问:
| 操作 | 命令示例 | 说明 |
|---|---|---|
| 生成临时下载链接 | mc share download myminio/mybucket/file.txt |
创建预签名 URL |
| 生成临时上传链接 | mc share upload myminio/mybucket/file.txt |
允许他人上传 |
| 查看已生成分享链接 | mc share list |
查看活跃分享 |
| 设置桶或对象为公开 | mc anonymous set public myminio/mybucket |
匿名可读 |
| 恢复私有 | mc anonymous set private myminio/mybucket |
禁止匿名访问 |
对象版本与回收管理(若开启版本控制):
| 操作 | 命令示例 | 说明 |
|---|---|---|
| 查看对象所有版本 | mc ls --versions myminio/mybucket/file.txt |
显示版本号 |
| 恢复旧版本 | mc cp myminio/mybucket/file.txt#<version-id> ./ |
下载旧版本 |
| 删除指定版本 | mc rm myminio/mybucket/file.txt#<version-id> |
删除旧版本 |
| 清空过期版本 | mc rm --versions --force myminio/mybucket/ |
批量清理 |
对象访问控制与权限管理:
| 操作 | 命令示例 | 说明 |
|---|---|---|
| 查看匿名访问级别 | mc anonymous get myminio/mybucket |
查看公开/私有状态 |
| 设为公开读取 | mc anonymous set public myminio/mybucket |
匿名可读 |
| 设为私有 | mc anonymous set private myminio/mybucket |
禁止匿名 |
| 设置下载策略(预签名) | mc share download myminio/mybucket/file.txt --expire 2h |
两小时有效链接 |
批量查找与筛选(非常实用):
| 操作 | 命令示例 | 说明 |
|---|---|---|
查找所有 .log 文件 |
mc find myminio/mybucket --name "*.log" |
按名称匹配 |
| 查找最近 7 天内修改的文件 | mc find myminio/mybucket --newer-than 7d |
时间过滤 |
| 查找大于 100MB 的文件 | mc find myminio/mybucket --size "+100MB" |
大文件搜索 |
| 组合筛选并打印路径 | mc find myminio/mybucket --name "*.csv" --older-than 30d --print "{size}\t{url}" |
复杂过滤输出 |
恢复私有(禁止匿名访问):
mc anonymous set private myminio/mybucket